#include <iostream>
#include "log.hpp"

#include <unordered_map>
#include <string>

// 定义错误码枚举
enum Error
{
    SOCKFD_FAILED = 1,
    BIND_FAILED,
    MAIN_USE_ERROR

};

// 定义错误码到字符串的映射
const std::unordered_map<Error, std::string>
    _map = {
        {Error::MAIN_USE_ERROR, "MAIN_USE_ERROR"},
        // 其他错误码的映射
};

// 将错误码转换为字符串
std::string ErToString(Error er)
{
    auto it = _map.find(er);
    if (it != _map.end())
    {
        return it->second; // 返回对应的字符串
    }
    return "UNKNOWN ERROR"; // 正确的拼写
}

// 打印错误日志
void EP(Error er)
{
    LOG::LOG(LOG::LogLevel::ERROR) << "Error is " << ErToString(er);
}

#define DIE(v)        \
    do                \
    {                 \
        std::exit(v); \
    } while (0)
